1. Field of the Invention
The present invention relates generally to servo control systems used for positioning read/write transducers in data storage devices, and more particularly, to a method, apparatus, and article of manufacture for providing settle time estimator feedback for use in rotational position reordering of queued commands in the data storage device.
2. Description of Related Art
It is well known in the art to store data on magnetic or optical disk drives. Data is stored on a disk drive on one or more tracks of predetermined format disposed on a disk-shaped recording media. The data is written to and read from the tracks using one or more transducers, which typically comprise read/write heads. Reading data from a desired one of the tracks on the disk surfaces requires knowledge of the read/write head position relative to the track as the disk rotates and the head is moved across the disk, and requires precise centering of the head over the disk track. Conventionally, the read/write head is mounted on a head positioning assembly and a servo controller controls movement of the head positioning assembly across the disk surface to move the read/write head from track to track (track seeking) and, once over a selected track, to maintain the read/write head in a path over the centerline of the track (track following).
The data storage device may queue multiple commands and also may reorder or schedule the commands within the queue in order to reduce overall access times. For example, it is well known to schedule the execution of queued commands to minimize cylinder distances between commands. More advanced scheduling methods will take into account both a radial location (i.e., a track number) as well as a circumferential location (i.e., a sector number) when choosing the next command to execute.
However, these scheduling methods need to have an accurate estimate of how long it will take to move the head (i.e., until a desired operation can be reliably repeated) or the target sector may be missed. That is, a command may be scheduled for execution that does not complete until shortly after the target sector has passed under the head; this may entail waiting for one or more full revolutions of the disks for the target sector to again pass under the head (i.e., a xe2x80x9cmissedxe2x80x9d revolution). In fact, as the time required to move the heads decreases relative to the rotational speed of the disks, these missed revolutions have an even greater impact on the overall performance of the device.
One current technique to overcome this problem is to estimate a mean time required to move the heads and then add a xe2x80x9cfudge factorxe2x80x9d (i.e., a settle time estimation) to the mean time estimate in an attempt to minimize the number of missed revolutions. The larger this settle time estimation, the fewer missed revolutions. However, a large settle time estimation can also have a negative impact on performance of the drives, because slower seeks will be selected by the scheduling methods.
One constraint in specifying a settle time estimation is that, typically, it is specified once for all drives (although a different settle time estimation may be specified for reads and writes). However, while the mean move time is constantly updated, this settle time estimation is usually not modified, and thus a conservative settle time estimation is often specified. This lack of modification for the settle time estimation reduces performance of the drives. Thus, there is a need in the art for improved techniques for providing settle time estimations that can be used in reordering queued commands in order to improve the operation of disk drives.
To minimize the limitations in the prior art described above, and to minimize other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method, apparatus, and article of manufacture for rotational position reordering of queued commands in a data storage device based on settle time estimator feedback. An initial settle time estimation is programmed into a servo controller for the data storage device. As data operations are performed in the data storage device, an actual settle time is measured for the data operations, generally through the use of a timer in the servo controller. The settle time estimation is then modified based on the actual settle time and the data operations are reordered or scheduled based on the settle time estimation. Specifically, the settle time estimation is adjusted based on a success rate for the data operations, wherein the success rate comprises a comparison of the actual settle time versus the settle time estimation. A first delta value is subtracted from the settle time estimation when the settle time estimation is greater than the actual settle time, and a second delta value is added to the settle time estimation when the settle time estimation is less than the actual settle time. Different settle time estimations may be used depending on various characteristics, i.e., settle time estimations differ for different transducers in the data storage device, according to a type of seek operation, according to a seek direction, according to a track location, and according to a general range of seek lengths.